// 文件名称: UserDAO.java
// 创建日期: 2023-10-05
// 描述: 用户数据访问对象类，负责处理与用户相关的数据库操作。

package org.wisdom.studentchoose.db;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * 用户数据访问对象类，提供用户认证和其他数据库操作方法。
 */
public class UserDAO {

    /**
     * 认证用户方法。
     *
     * @param username 用户名
     * @param password 密码
     * @return 如果用户名和密码匹配，则返回 true；否则返回 false
     */
    public boolean authenticate(String username, String password) {
        // SQL 查询语句，用于验证用户名和密码
        String sql = "SELECT * FROM users WHERE username = ? AND password = ?";

        try (Connection connection = DatabaseConnection.getConnection();
             PreparedStatement statement = connection.prepareStatement(sql)) {

            // 设置查询参数
            statement.setString(1, username);
            statement.setString(2, password);

            // 执行查询
            try (ResultSet resultSet = statement.executeQuery()) {
                // 检查查询结果是否有匹配的记录
                return resultSet.next();
            }
        } catch (SQLException e) {
            // 打印异常堆栈信息
            e.printStackTrace();
            // 抛出运行时异常，表示用户认证失败
            throw new RuntimeException("Failed to authenticate user", e);
        }
    }

    // 其他数据库操作方法，如 addUser, updateUser, deleteUser 等
}
